package com.ouc.eddyAlgorithm.service;

import com.ouc.eddyAlgorithm.domain.VgA4b3Track;

import java.text.ParseException;
import java.util.Date;
import java.util.List;


/**
 * 涡旋跟踪Service接口
 *
 * @author ouc
 * @date 2024-08-10
 */
public interface IVgA4b3TrackService {
  /**
   * 查询涡旋跟踪
   *
   * @param id 涡旋跟踪主键
   * @return 涡旋跟踪
   */
  public VgA4b3Track selectVgA4b3TrackById(Integer id);

  /**
   * 查询涡旋跟踪列表
   *
   * @param vgA4b3Track 涡旋跟踪
   * @return 涡旋跟踪集合
   */
  public List<VgA4b3Track> selectVgA4b3TrackList(VgA4b3Track vgA4b3Track);

  /**
   * 新增涡旋跟踪
   *
   * @param vgA4b3Track 涡旋跟踪
   * @return 结果
   */
  public int insertVgA4b3Track(VgA4b3Track vgA4b3Track);

  /**
   * 修改涡旋跟踪
   *
   * @param vgA4b3Track 涡旋跟踪
   * @return 结果
   */
  public int updateVgA4b3Track(VgA4b3Track vgA4b3Track);

  /**
   * 批量删除涡旋跟踪
   *
   * @param ids 需要删除的涡旋跟踪主键集合
   * @return 结果
   */
  public int deleteVgA4b3TrackByIds(Integer[] ids);

  /**
   * 删除涡旋跟踪信息
   *
   * @param id 涡旋跟踪主键
   * @return 结果
   */
  public int deleteVgA4b3TrackById(Integer id);

  //向前跟踪

  /**
   * 时间、经纬度
   * 跟踪了多少条涡旋信息
   */

  int vgEddyTrack(String startTime, String endTime, Float startLat, Float endLat, Float startLon, Float endLon, int trackTime, int trackLevel, float trackNum) throws ParseException;

  /**
   * 查询涡旋跟踪列表(预报数据，1天)
   *
   * @param vgA4b3Track 涡旋跟踪
   * @return 涡旋跟踪集合
   */
  public List<VgA4b3Track> selectVgA4b3TrackByForecast(VgA4b3Track vgA4b3Track);

  /**
   * 新增涡旋跟踪(预报数据)
   *
   * @param vgA4b3Track 涡旋跟踪
   * @return 结果
   */
  public int insertVgForecast(VgA4b3Track vgA4b3Track);


  public int deleteTodayEddy(Date today);

  public String vgToJson(String time) throws ParseException;

  /**
   * 查询一个涡旋的轨迹
   *
   * @param track 轨迹编号
   * @return 生成的文件路径
   */
  public String vgTrackToJson(Integer track);


}
